package com.cloud.gateway.utils;

import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import org.springframework.util.AntPathMatcher;

import java.util.List;

import static org.apache.commons.lang3.StringUtils.isEmpty;

/**
 * url匹配工具
 *
 * @author yan
 */
public class UrlMatchUtils {

    /**
     * 查找指定字符串是否匹配指定字符串列表中的任意一个字符串
     *
     * @param str         指定字符串
     * @param patternList 需要检查的字符串数组
     * @return 是否匹配
     */
    public static boolean matches(String str, List<String> patternList) {
        if (isEmpty(str) || CollectionUtils.isEmpty(patternList)) {
            return false;
        }
        for (String pattern : patternList) {
            if (matches(str, pattern)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 查找指定字符串是否匹配
     *
     * @param str     指定字符串
     * @param pattern 需要检查的字符串
     * @return 是否匹配
     */
    public static boolean matches(String str, String pattern) {
        return new AntPathMatcher().match(pattern, str);
    }
}
